﻿Imports ServiciosAT

Namespace SIREOS
    Public Class SeguridadWSR

        Function cambiarContrasena(oUsuarioBE As SireosWSSeguridad.Usuario) As SireosWSSeguridad.MensajeInformativo
            Dim oSeguridadSW As New SireosWSSeguridad.WSSeguridad

            Dim _cambiarContrasenaRequest As New SireosWSSeguridad.cambiarContrasenaRequest
            Dim _cambiarContrasenaResponse As New SireosWSSeguridad.cambiarContrasenaResponse
            _cambiarContrasenaRequest.usuario = oUsuarioBE

            _cambiarContrasenaResponse = oSeguridadSW.cambiarContrasena(_cambiarContrasenaRequest)
            Return _cambiarContrasenaResponse.mensajeInformativo
        End Function

        Function listarModulosUsuario(oUsuarioAccesoBE As SireosWSSeguridad.UsuarioAcceso) As DataTable
            Dim oSeguridadWS As New SireosWSSeguridad.WSSeguridad

            Dim _listarAccesoModulosRequest As New SireosWSSeguridad.listarAccesoModulosRequest
            Dim _listarAccesoModulosResponse As New SireosWSSeguridad.listarAccesoModulosResponse
            _listarAccesoModulosRequest.usuarioAcceso = oUsuarioAccesoBE
            _listarAccesoModulosRequest.usuarioAcceso.codUsuarioSpecified = True
            _listarAccesoModulosResponse = oSeguridadWS.listarAccesoModulos(_listarAccesoModulosRequest)

            If Not (_listarAccesoModulosResponse.listaObjetoNegocio.acceso Is Nothing) Then

                Dim tot As Integer = _listarAccesoModulosResponse.listaObjetoNegocio.acceso.Count
                Dim dt As New DataTable
                dt.Columns.Add("CodAcceso")
                dt.Columns.Add("NomAcceso")
                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarAccesoModulosResponse.listaObjetoNegocio.acceso.ElementAt(i).codAcceso, _listarAccesoModulosResponse.listaObjetoNegocio.acceso.ElementAt(i).nomAcceso)
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function listarPermisosUsuario(oUsuarioAccesoBE As SireosWSSeguridad.UsuarioAcceso) As DataTable
            Dim oSeguridadWS As New SireosWSSeguridad.WSSeguridad

            Dim _listarAccesoPermisosRequest As New SireosWSSeguridad.listarAccesoPermisosRequest
            Dim _listarAccesoPermisosResponse As New SireosWSSeguridad.listarAccesoPermisosResponse

            _listarAccesoPermisosRequest.usuarioAcceso = oUsuarioAccesoBE
            _listarAccesoPermisosRequest.usuarioAcceso.codUsuarioSpecified = True
            _listarAccesoPermisosResponse = oSeguridadWS.listarAccesoPermisos(_listarAccesoPermisosRequest)

            If Not (_listarAccesoPermisosResponse.listaObjetoNegocio.acceso Is Nothing) Then

                Dim tot As Integer = _listarAccesoPermisosResponse.listaObjetoNegocio.acceso.Count
                Dim dt As New DataTable
                dt.Columns.Add("CodAcceso")
                dt.Columns.Add("NomAcceso")
                dt.Columns.Add("NivAcceso")
                dt.Columns.Add("PagAcceso")
                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarAccesoPermisosResponse.listaObjetoNegocio.acceso.ElementAt(i).codAcceso, _listarAccesoPermisosResponse.listaObjetoNegocio.acceso.ElementAt(i).nomAcceso, _listarAccesoPermisosResponse.listaObjetoNegocio.acceso.ElementAt(i).nivAcceso, _listarAccesoPermisosResponse.listaObjetoNegocio.acceso.ElementAt(i).pagAcceso)
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function obtenerNombreUsuario(oUsuarioBE As SireosWSSeguridad.Usuario) As String
            Dim oSeguridadSW As New SireosWSSeguridad.WSSeguridad

            Dim _obtenerNombreUsuarioRequest As New SireosWSSeguridad.obtenerNombreUsuarioRequest
            Dim _obtenerNombreUsuarioResponse As New SireosWSSeguridad.obtenerNombreUsuarioResponse

            _obtenerNombreUsuarioRequest.usuario = oUsuarioBE
            _obtenerNombreUsuarioRequest.usuario.codUsuarioSpecified = True
            _obtenerNombreUsuarioResponse = oSeguridadSW.obtenerNombreUsuario(_obtenerNombreUsuarioRequest)

            If _obtenerNombreUsuarioResponse.empleado Is Nothing Then
                Return Nothing
            Else
                Return _obtenerNombreUsuarioResponse.empleado.nomEmpleado
            End If
        End Function

        Function registrarSeguimiento(oSeguimientoBE As SireosWSSeguridad.Seguimiento) As Boolean
            Dim oSeguridadSW As New SireosWSSeguridad.WSSeguridad

            Dim _registrarSeguimientoRequest As New SireosWSSeguridad.registrarSeguimientoRequest
            Dim _registrarSeguimientoResponse As New SireosWSSeguridad.registrarSeguimientoResponse
            _registrarSeguimientoRequest.seguimiento = oSeguimientoBE

            _registrarSeguimientoResponse = oSeguridadSW.registrarSeguimiento(_registrarSeguimientoRequest)

            If _registrarSeguimientoResponse.mensajeInformativo Is Nothing Then
                Return False
            Else
                Return True
            End If
        End Function

        Function validarNombreUsuario(oUsuario As SireosWSSeguridad.Usuario) As Integer
            Dim oSeguridadSW As New SireosWSSeguridad.WSSeguridad

            Dim _validarNombreUsuarioRequest As New SireosWSSeguridad.validarNombreUsuarioRequest
            Dim _validarNombreUsuarioResponse As New SireosWSSeguridad.validarNombreUsuarioResponse
            _validarNombreUsuarioRequest.usuario = oUsuario

            _validarNombreUsuarioResponse = oSeguridadSW.validarNombreUsuario(_validarNombreUsuarioRequest)

            If _validarNombreUsuarioResponse.usuario Is Nothing Then
                Return 0
            Else
                Return _validarNombreUsuarioResponse.usuario.codUsuario
            End If
        End Function

        Function validarUsuario(oUsuario As SireosWSSeguridad.Usuario) As Integer
            Dim oSeguridadSW As New ServiciosAT.SireosWSSeguridad.WSSeguridad

            Dim _validarUsuarioRequest As New SireosWSSeguridad.validarUsuarioRequest
            Dim _validarUsuarioResponse As New SireosWSSeguridad.validarUsuarioResponse
            _validarUsuarioRequest.usuario = oUsuario

            _validarUsuarioResponse = oSeguridadSW.validarUsuario(_validarUsuarioRequest)

            If _validarUsuarioResponse.usuario Is Nothing Then
                Return 0
            Else
                Return _validarUsuarioResponse.usuario.codUsuario
            End If
        End Function

    End Class
End Namespace